1. Field of the Invention
The present invention relates generally to a data communications system using TDMA (Time Division Multiple Access) frames, and more specifically to techniques of scheduling channel allocation in the dynamic TDMA frame.
2. Description of Related Art
As is well known in the art. TDMA allows each user to access the full spectrum allocation for a fraction of the time. TDMA is a technique in which the available spectrum resource is occupied by one modulated carrier, and each of the whole “n” channels gains access to that carrier for 1/n of the time in an ordered sequence. However, such a fixed channel TDMA technique has proven unable to meet the situation where the data rate required varies every moment and the user demands a high date rate in the broadband communications. In order to solve the problems with the fixed channel TDMA technique, dynamic TDMA has been proposed which dynamically assigns the channels in the TDMA frame. With the dynamic TDMA, it is possible to obviate the difficulties inherent in the fixed channel TDMA. By way of example, the dynamic TDMA technique is adopted in HIPERLAN/2 (High PERformance LAN type 2) that is an European standard specified by ETSI (European Telecommunications Standards Institute) protect BRAN (Broadband Radio Access Networks) in 5 GHz frequency band.
Before turning to the present invention, it is advantageous to briefly describe, with reference to FIGS. 1–5, the background of the present invention,
FIG. 1 is a sketch which schematically shows one example of a short-range high-speed radio access system provided in indoor or outdoor environments. An access point AP serves as a base station and a bridge between a wireless network and a larger Ethernet network, the Internet, etc. A plurality of mobile terminals (denoted by MT1 to MTx), which are located in a service area 10 of the access point AT, are able to establish bidirectional radio links (uplink and downlink) with the access point AP and/or with each other via the access point AP.
FIG. 2 schematically shows one TDMA frame wherein a plurality of channels are dynamically allocated so as to realize an effective use of the limited capacity in the TDMA frame. Although many kinds of channels are defined in the HIPERLAN/2, only three channels are referred to in the instant disclosure for the sake of simplifying the description. That is to say, as shown in FIG. 2, the TDMA frame generally comprises a broadcast channel BCH, downlink channels, and uplink channels. A guard space is typically provided between the downlink and uplink channels. When generating each TDMA frame, if no further channel generation becomes unnecessary, the remaining time space in the frame is blanked. Each channel consists of a plurality of time slots that are numbered as shown in FIG. 2, and thus, each channel can be defined by specifying the time slots at start and end positions of the channel.
The broadcast channel BCH, which may be called a frame header, is used to advise the mobile terminals MTs of the TDMA frame structure in order to enable the communications between the access point AP and the mobile terminals MTs. More specifically, the broadcast channel BCH indicates the frame's front position so as to establish frame synchronization at each of the mobile terminals MTs. Further, the BCH is used to advise each mobile terminal MT of the length of the data (downlink and/or uplink), and further to inform each MT where the data is located in the frame using the time slot numbers at the start and end of the data. To this end, the broadcast channel BCH includes the following pieces of information with respect to each packet: the MT number (viz., MT identification (ID)), the kind of channel to be used (viz., user channel or control channel), the distinction between the downlink and the uplink via which the packet is conveyed, the start position (viz., starting time slot number) of the packet in the frame, and the packet data length. Thus, the broadcast channel BCH serves to define the frame structure in order that the access point AT is able to communicate with the mobile terminals MTs using the dynamically allocated channels.
In the dynamic TDMA, in the case where there exist two or more channels directed to the same mobile terminal MT in the downlink channels and/or the uplink channels, these channels are respectively neighbored in the downlink channels and/or the uplink channels so as to reduce overheads which otherwise are required for each channel. As one simple example, if the access point AP receives a large amount of data from the network, which is directed to a certain mobile terminal, the access point AP assigns all the channels of the frame to the same mobile terminal MT so as to transmit the data at a high rate to the mobile terminal. The dynamic channel (viz., time slot) allocation in the frame is referred to “scheduling” that is carried out at a scheduler, which will be described in more detail with reference to FIGS. 3 and 4.
Referring to FIG. 3, the hardware arrangement of the access point AT is schematically shown in block diagram form. As shown, the access point AT generally comprises a transceiver (Rx/Tx) 18, a framer 20, a packet buffer unit 22, a control data processor 24, a scheduler 26, an interface 28 provided between the access point AP and the network, and a frame table 30, all of which are functionally coupled as illustrated. The present invention is particularly concerned with the scheduler 26 and the frame table 30, and as such, the remaining blocks are briefly described.
In order to simplify the description of the instant disclosure, it is assumed that the wireless communications have already been established between the access point AP and some of the mobile terminals MTs located in the service area 10 (FIG. 1). When the access point AP receives the user data (packet(s)) from the network via the interface 28, the user data are successively stored in a buffer B1 of the packet buffer unit 22 in the order of arrival under the control of a controller 23 provided in the unit 22. The controller 23 is used to control the data read/write operations with respect to the buffers provided in the packet buffer unit 22.
In the instant specification, the data to be transmitted from the access point AP to the mobile terminals MTs may be referred to as downlink data, while the data received at AP from the mobile terminals MTs may be referred to as uplink data.
The information required for scheduling with respect to each user data (packet) stored in the buffer B1 is applied to the scheduler 26 via a line L2. The information applied to the scheduler 26 includes the address pointer indicating the first address of the packet stored in the buffer B1, the mobile terminal ID to which the packet is to be transmitted, a kind of channel (user data channel in this case) to be generated for the packet, the number of time slots (viz., data length) to be allocated to the packet in the frame.
On the other hand, the control data, which are transmitted from the mobile terminals MTs to the access point AP, are successively applied to a buffer B2 of the packet buffer unit 22 via lines L4 and L6. The control data stored in the buffer B2 are successively applied, via a line L8, to the control data processor 24 to be analyzed thereat. That is to say, the control data processor 24 determines the data rate (viz., the number of time slots used in the frame) which the mobile terminal MT requires, the number of control data which the mobile terminal further wishes to transmit to the access point AP, etc. The control data to be transmitted to the mobile terminal MT are applied, via a line L10, to a buffer B3 of the packet buffer unit 22 and then stored therein.
Further, the control data processor 24 supplies, via a line L12, the scheduler 26 with the information needed for scheduling with respect to the control data and/or user data channels. That is to say, in the case of the control data, the control data processor 24 supplies the scheduler 26 with the address pointer indicating the first address of the control data stored in the buffer B3, the mobile terminal ID to which the control data is transmitted, a kind of channel (control data channel in this case) to be generated, the number of time slots (data length) to be allocated to the control channel in the frame for the mobile terminal specified above. On the other hand, in the case of user data to be transmitted to the access point AP, the control data processor 24 supplies the scheduler 28 with the mobile terminal ID from which the user data is to be transmitted, the address pointer of a buffer 4 into which the transmitted user data is stored, a kind of channel (user data channel in this case) to be generated, the number of time slots (data length) to be allocated to the user data channel in the frame for the mobile terminal specified above.
In addition, the scheduler 26 receives the information needed to transmit data over the broadcast channel BCH, which broadcasting data is stored in a buffer B5 of the packet buffer unit 22. The data to be transmitted using the broadcast channel BGH have been described above.
The scheduler 26 is supplied with the above-mentioned information for frame scheduling, and determines each structure of the TDMA frames that are repeatedly transmitted to the mobile terminals MTs at predetermined time intervals. In brief, the scheduler 26 determines, with respect to each mobile terminal related to the frame, the kind of channel (control data or user data channel), the number of channels, the channel location in the frame, etc. The frame structure determined by the scheduler 26 is reflected on the frame table 30 which takes the form of an random access memory (RAM) functionally divided into a plurality of memory blocks MB1–MBy. The memory block MB1 is dedicated to the broadband channel, and the remaining blocks MB2–MBy are assigned to the channels for the control data and/or the user data.
The scheduling is carried out considering preference of data to be transmitted and received. Although the data are in practice classified into more than two different preference groups, it is assumed for the sake of simplicity that the control data is given a higher priority relative to the user data. Therefore, the scheduler 26 assigns the control data in preference of the user data in the frame, and if the frame table 30 affords to accept the user data, then the scheduler 26 writes the user channel defining data into the available memory blocks. It is not seldom that all the memory blocks MB2–MBy are assigned to the control channel defining data except for the memory block MB1 dedicated to the broadband channel BCH.
The scheduler 26 initially selects the leading memory block MB1 and writes thereinto the following channel defining data: the channel information indicating that the channel assigned to MB1 is the BCH; the number of time slots (which is typically fixed) allocated to the BCH, the address pointer specifying the location of the BCH data stored in the buffer 5 of the packet buffer unit 22, etc. Following this, the scheduler 26 successively selects the subsequent memory blocks MB2, MB3, . . . , and write thereinto the control channel defining data for use in generating the downlink control channels at the framer 20. Further, the scheduler 26 selects a memory block which is preceded by the last memory block for the control channel, and assigns the same as the guard space. Thereafter, the scheduler 26 implements the similar operations as mentioned above with respect to the memory blocks to be assigned to the uplink control channels, in the case where one or more memory blocks are left after all the control channel defining data are written into the memory blocks, the scheduler 26 writes the user channel defining data into the memory blocks left over. Contrarily, if the scheduler 26 is unable to store all the control channel defining data currently handled into all the memory blocks MB1–MBy, the scheduler 26 waits until the memory blocks become available, and thereafter begins writing the remaining control channel defining data into the memory blocks from MB2 after writing the BCH channel defining data into MB1.
Referring to FIG. 4, the frame table 30 will be described in more detail in connection with the operations of the scheduler 26 and the framer 20. As mentioned above, the contents of the frame table 30 reflect the result of the scheduling. The outline of the frame table 30 has already been described, and the descriptions given in the above may be omitted or simplified for brevity. The memory blocks MB1–MBy are accessed by the scheduler 26 and the framer 20 as well. The channel defining data stored in the memory block MB1 assigned to the BCH has been described. Each of the memory blocks MB2 to MBs in this particular case stores the channel information indicating the mobile terminal ID, a distinction between the control data and the user data, the number of time slots assigned to the mobile terminal, and the address pointer indicative of the first address of the buffer B1 or B3 or B4 in order that the framer 20 is able to retrieve the data related to the mobile terminal defined above.
The framer 20, in the first place, accesses the memory block MB1, and retrieves the address pointer therefrom which is applied to the packet buffer unit 22 via a line L14 and reads out the BCH data stored in the buffer 5 of the packet buffer unit 22 using the number of timing slots stored in the MB1. The data read out of the buffer 5 is applied to the framer 20 via a line L16 (FIG. 3). The detail of the data retrieval from the buffer 5 using the number of time slots is not given because the present invention is not concerned therewith. The framer 20 applies the data thus read out of the buffer 5 to the transceiver 18 via a line L18 (FIG. 3). It is assumed that only the memory blocks MB2–MBs are used and the remaining memory blocks are blanked. In a manner similar to the above, the framer 20 successively accesses MB2–MBs, and retrieves respectively the address pointers stored therein and reads out the data stored in the corresponding buffer in the packet buffer unit 22, after which the framer 20 applies the retrieved data to the transceiver 18.
In FIG. 4, one example of the TDMA frame outputted from the framer 20 is illustrated. The notation “USER” indicates the user data channel, while “CONT” the control data channel. The TDMA frame shown in FIG. 4 will be understood without difficulty from the descriptions so far given in the instant disclosure.
When the access point AP receives the data transmitted from a given mobile terminal using the TDMA frame such as shown in FIG. 4, the framer 20 accesses the corresponding MB and retrieves therefrom the information of the memory location of the buffers in the unit 22 into which the received data are to be stored. Thereafter, the framer 20 stores the received data in the predetermined memory area in the unit 22.
Returning to the scheduling which is implemented at the scheduler 26, when the scheduler 26 is going to write a certain new channel defining data into the frame table 30, if one or more channel defining data directed to the same mobile terminal MT have been stored in the memory block in the same link channel, the new channel defining data is stored into the memory block adjacent to the memory block already used for the same MT. In such a case, after the scheduler 26 determines the memory block into which the new channel defining data is to be written, the scheduler 26 stores the new channel defining data into the memory block. One known technique of writing the new channel defining data into the memory block, which neighbors the memory block already used to store the channel defining data for the same mobile terminal, will be described with reference to FIGS. 5(A) to 5(C).
As shown in FIGS. 5A and 5B, it is assumed that the memory blocks MB1–MBm are used to store the channel defining data (FIG. 5A), and further assumed that a new channel defining data for the mobile terminal MT2 is to be written into the memory block MB4 (FIG. 5B). In this case, it is necessary to make space for the new channel defining data at MB4 by moving respectively the contents stored in MB4 to MBm to MB5 to MBn one by one. That is to say, the channel defining data shifting inevitably requires that the data stored in the last memory block MBm is first read out and then stored in the next one MBn, and then the data of the memory block MB(m-1) is read out and stored in MBm, and so on, and such operation is repeated until the data stored in MB4 is moved to MB5. It is understood that such data read/write operations at the memory blocks MB4–MBn suffers from undesirable consumption of a relatively large amount of time. Further, such a conventional technique has encountered the problem that it may occur that the scheduling can not be completed within the time duration assigned to one TDMA frame.